<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 作业1
        // 使用splice方法重写数组的原型上的unshift方法
        var arr7 = [2, 3, 4];
        function splice(arr, index){
            var index = index += index >= 0 ? 0 : arr.length;
            console.log(index);
        }
        splice(arr7, -1);

        // 方法1：原数组中修改
        // Array.prototype.myUnshift = function(){
        //     var pos = 0;
        //     for(var i = 0; i < arguments.length; i++){
        //         this.splice(pos, 0, arguments[i])
        //         pos++;
        //     }
        //     return this.length;
        // }
        // arr7.myUnshift(1,2,4);
        // console.log(arr7, 'arr7');

        // 方法2：新数组
        Array.prototype.myUnshift = function(){
            var arguArr = Array.prototype.slice.call(arguments);
            var newArr = arguArr.concat(this);
            return newArr;
        }
        var arr77 = arr7.myUnshift(1,2,4);
        console.log(arr77, 'arr7');

        console.log('------分割线-----');

        // 作业2
        // 请按照字节数排序下列数组
        // ['我爱你', 'OK', 'Hello', '你说WHAT', '可以']
        var arr8 = ['我爱你', 'OK', 'Hello', '你说WHAT', '可以'];
        arr8.sort(function(a, b){
            var newA = a.length + num(a),
                newB = b.length + num(b);
            
            function num(str){
                var oldNum = 0
                for(var i = 0; i < str.length; i++){
                    oldNum += str.charCodeAt(i) >= 255 ? 1 : 0;
                }
                return oldNum;
            }
            
            return newA - newB;
            // return newB - newA; // 倒序
        });
        console.log(arr8);
    </script>
</body>
</html>